home *** CD-ROM | disk | FTP | other *** search
- CMENU Specification Language
- ----------------------------
-
- Explanation of my "loose BNF" form:
-
- := reads "is defined as".
-
- Terms in <>s are syntactic objects.
-
- Terms in CAPITALS are keywords.
-
- An item in [] is optional
-
- If a set of items is enclosed in {} with |
- between each item, or a range is shown
- using the - character, exactly one of
- those items must be picked.
-
- * to the right of an object denotes 0
- or more occurrences.
-
- + to the right of an object denotes 1
- or more occurrences.
-
- Wherever a separator is necessary to
- delimit tokens, the characters ';' and
- ',' are both valid separators along
- with the usual whitespace characters
- (space, tab and newline.)
- ------------------------------------------
-
- <cmenu-source-file> :=
- <menu-defn> +
-
- <menu-defn> :=
- MENU [<identifer>] :
- <menu-option> *
- <item-defn> +
- ENDMENU
-
- <identifier> :=
- { a-z | A-Z }+ { a-z | A-Z | 0-9 } *
-
- <menu-optiion> :=
- PATH <text>
- ALIGN { LEFT | CENTER } |
- ESCAPE |
- NOESCAPE |
- SPACING { 1 | 2 } |
- COLUMNS <integer>
-
- <integer> :=
- {0-9} +
-
- <text> :=
- {
- "<ascii-string>" |
- '<ascii-string>' |
- <no-space-string>
-
- }
-
- <item_defn> :=
- ITEM [<identifier>] : [<text>]
- [<item-option>] *
- <action-code>
-
- <item-option> :=
- NEXTITEM
- {
- <identifier> |
- FIRST |
- LAST |
- NEXT
- } |
- TEXT <text> |
- HELP <text> |
- PATH <text> |
- PROMPT |
- PAUSE |
- NOPROMPT |
- NOPAUSE |
- NOPRECLEAR |
- PRECLEAR
-
- <action-code> :=
- {
- ACTION <text> |
- EXIT |
- LMENU <identifer> |
- EMENU <text>
- }
-
- <ascii-string> := string containing any
- ASCII characters, delimited by either
- single (') or double (") quotes.
- Line continuation is NOT permitted.
-
- <no-space-string> := string without
- quotes, containing no whitespace
- characters whatsoever. Terminated
- by first whitespace character.
-
- Note: the <text> displayed for any one
- item may be specified either as an
- <item-option> (the TEXT clause) or
- immediately following the colon after
- the ITEM declaration. Exactly ONE
- of these methods must be used for
- each item in the menu file.
-
-